package com.sinodata.bsm.center.dao;

/**
 * <p>
 * Description: 通知规则DAO
 * </p>
 *
 * @author liulibo
 * @version 1.0

 * <p>
 * History: 
 *
 * Date                     Author         Version     Description
 * ---------------------------------------------------------------------------------
 * 2012-7-6 PM 3:55:38      liulibo        1.0         To create
 * </p>
 *
 * @since 
 * @see     
 */
public interface NotifyRuleDao {

    /**
     * 删除事件通知规则
     * 
     * @param id
     */
    public void delete(Long id);

    /**
     * 通过通知规则ID删除接收规则
     * 
     * @param id
     */
    public void deleteNotifyReceiveRule(Long id);

    /**
     * 根据接收表Id删除接收规则
     * @param id
     */
    public void deleteNotifyReceiveRuleByNotifyReceiveRuleId(Long id);

    /**
     * 通过通知规则ID删除暂停规则
     * 
     * @param id
     */
    public void deleteNotifyPauseRule(Long id);

    /**
     * 根据暂停规则ID删除暂停规则
     * 
     * @param id
     */
    public void deleteNotifyPauseRuleByNotifyPauseRuleId(Long id);

    /**
     * 通过通知规则ID删除排除规则
     * 
     * @param id
     */
    public void deleteNotifyExcludeResRule(Long id);

    /**
     * 根据排除规则ID删除排除规则
     * 
     * @param id
     */
    public void deleteNotifyExcludeResRuleByNotifyExcludeResRuleId(Long id);

    /**
     * 通过通知规则ID删除通知的事件规则
     * 
     * @param id
     */
    public void deleteNotifyEventTypeRule(Long id);

    /**
     * 通过通知规则ID删除延迟规则
     * 
     * @param id
     */
    public void deleteNotifyDelayRule(Long id);

    /**
     * 根据延迟规则ID删除延迟规则
     * 
     * @param id
     */
    public void deleteNotifyDelayRuleByNotifyDelayRuleId(Long id);

    public void batchDeleteNotifyEventTypeRule(Long[] ids);

    public int getByNameAndResId(Long resId, String name);
}
